#!/usr/bin/env node
 
// Node CLI 应用入口文件必须要有这样的文件头
// 如果是 Linux 或 maxOS 系统下还需要修改此文件的读写权限为 755
// 具体就是通过 chmod 755 mycli.js
const fs = require('fs')
const path = require('path')
const inquire = require('inquirer') // 可询问用户问题并接收用户回答
const ejs = require('ejs') // 一种模板引擎

inquire.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Your project name?'
    }
]).then(answers => {
    const templateDir = path.join(__dirname, 'templates') // 模板文件所在目录
    const destinationDir = process.cwd() // 当前命令行所在目录

    // 将模板下文件全部转换到模板目录
    fs.readdir(templateDir, (err, files) => {
        if(err) throw err
        files.forEach(file => {
            // 通过模板引擎ejs 渲染模板文件
            ejs.renderFile(path.join(templateDir, file), answers, (err, result) => {
                if(err) throw err
                // 将渲染结果写文件
                fs.writeFileSync(path.join(destinationDir, file), result)
            } )
        })
    })
})
